package menagement;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.Local;

import menagement.dto.EscursioneDTO;
import menagement.dto.EscursionePrenotazioneDTO;
import menagement.dto.EscursioniPacchettoDTO;
import menagement.dto.HotelDTO;
import menagement.dto.HotelPacchettoDTO;
import menagement.dto.HotelPrenotazioneDTO;
import menagement.dto.PacketDTO;
import menagement.dto.PrenotazioneDTO;
import menagement.dto.VoloDTO;


public interface PacketMgr {
	
	public void savePacchetto(PacketDTO packet, HotelPacchettoDTO hpdto, EscursioniPacchettoDTO edto);
	public void update(PacketDTO packet, String mail);
	public void updateProdottiPacchetto(String mail,PacketDTO selezionato, ArrayList<HotelDTO> hotelDaEliminare, List<HotelDTO> hotelDaAggiungere,
										   ArrayList<EscursioneDTO> escursioniDaEliminare, List<EscursioneDTO> escursioniDaAggiungere);
	public void deletePacchetto(PacketDTO packet);
	
	//Metodi chiamati dal retriever, per cercare in DB
	public ArrayList<VoloDTO> ListaCitta();
	public ArrayList<PacketDTO> ListaPacchetti();
	public ArrayList<EscursioniPacchettoDTO> ListaEscursioniPacchetto(int codice);
	public ArrayList<HotelPacchettoDTO> ListaHotelPacchetto(int codice);
	public ArrayList<VoloDTO> ListaVoliCitta(int codice); //prende il codice di un volo e torna tutti i voli con la stessa destinazione
	public ArrayList<HotelDTO> listaHotelCitta(int codice); //codice= codice di un volo
	public ArrayList<EscursioneDTO> listaEscursioniCitta(int codice); //codice= codice di un volo
	public HotelDTO getHotel(int codice);
	public EscursioneDTO getEscursione (int codice);
	public VoloDTO getVolo (int codice);
	
	//Utilizzate dalla parte user
	public ArrayList <VoloDTO> trovaVoli();
	public int persistPrenotazione(PrenotazioneDTO pren);
	public void persistHotel(HotelDTO hotel, int idPren, int persone);
	public void persistEscursione(EscursioneDTO esc, int idPren);
	public ArrayList<PrenotazioneDTO> travaPrenotazioni(String mail);
	public ArrayList<HotelDTO> listaHotelPrenotazione(int codice); //passare il codice della prenotazione, che va a prendere nelle ponte e poi negli hotel
	public ArrayList<EscursioneDTO> listaEscursioniPrenotazione(int codice); //passare il codice della prenotazione, che va a prendere nelle ponte e poi nelle escursioni

}